package com.hiss.basic.client.system;

import com.hiss.basic.model.system.domain.SysMenuDomain;
import com.hiss.basic.model.system.request.SysMenuCreateRequest;
import com.hiss.basic.model.system.request.SysMenuQueryRequest;
import com.hiss.basic.model.system.request.SysMenuUpdateRequest;
import com.hiss.basic.model.system.response.SysMenuQueryResponse;
import com.hiss.basic.model.system.response.route.RouteResponse;
import com.hiss.basic.starter.core.utils.tree.TreeNode;
import com.mybatisflex.core.service.IService;

import java.util.List;

/**
 * 系统菜单 service
 */
public interface ISysMenuService extends IService<SysMenuDomain> {

    List<RouteResponse> findRoutes(Long userId);

    List<SysMenuQueryResponse> findList(SysMenuQueryRequest request);

    List<TreeNode<Long, Integer>> findTreeList(SysMenuQueryRequest request);

    void create(SysMenuCreateRequest request);

    void update(SysMenuUpdateRequest request);

    void remove(Long id);
}
